// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({ env: 'cloud1-6gsv4k6hcacb77b6'}) // 使用当前云环境

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()

  return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}
const db = cloud.database();

exports.main = async (event, context) => {
  const { action, username,gender, password,userInfo,img } = event;

  if (action === 'register') {
    // 检查用户名是否已存在
    const res = await db.collection('user3').where({
      username: username
    }).get();
    
    if (res.data.length > 0) {
      // 用户名已存在
      return { code: -1, msg: '该用户名已被注册' };
    } else {
      // 注册新用户
      const addRes = await db.collection('user3').add({
        data: {
          name: username,
          password: password || 'qwer', // 使用 pass1 字段
          iphone: '写下你的手机号',
          note:'写下你的个性签名',
          gender:gender,
          img:img || '/images/wx.png',
          time: new Date()
        }
      });
      // 获取注册的用户数据
      const userData = await db.collection('user3').doc(addRes._id).get();
      return { code: 0, msg: '注册成功', data: userData.data }; // 返回注册数据
    }
  } else if (action === 'login') {
    console.log('进入云函数登录判断');
    // 检查用户名和密码是否匹配
    const res = await db.collection('user3').where({
      name: username,
      password: password 
    }).get();
    
    if (res.data.length > 0) {
      // 登录成功
      return { code: 0, msg: '登录成功',res:res };
    } else {
      // 登录失败
      return { code: -1, msg: '用户名或密码错误' };
    }
  } else if (action === 'update') {
    console.log('进入云函数修改判断');
    try {
      // 更新用户信息
      const res = await db.collection('user3').doc(userInfo._id).update({
        data: {
          name: userInfo.name, // 更新用户名
          iphone: userInfo.iphone, // 更新手机号
          note: userInfo.note, // 更新个性签名
          img: img // 更新头像
        }
      });
  
      return { code: 0, msg: '更新成功', data: res }; // 返回成功结果
    } catch (err) {
      console.error('更新失败', err); // 打印错误日志
      return { code: -1, msg: '更新失败' }; // 返回失败结果
    }
  } else if (action === 'delete') {
      console.log('进入云函数删除账号');
      try {
          // 删除用户账号
          const userRes = await db.collection('user3').doc(userInfo._id).remove();
          
          // 删除用户的所有衣物记录
          const clothesRes = await db.collection('clothes')
              .where({
                  userid: userInfo._id
              })
              .remove();
              
          return { 
              code: 0, 
              msg: '账号删除成功',
              data: {
                  userDeleted: userRes.stats.removed,
                  clothesDeleted: clothesRes.stats.removed
              }
          };
      } catch (err) {
          console.error('删除失败', err);
          return { code: -1, msg: '账号删除失败' };
      }
  } 
  else {
    return { code: -1, msg: '未知操作' };
  }
}